import java.util.*;

public class test1 {
    /*给定一个数组 prices ，它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
    你只能选择 某一天 买入这只股票，并选择在 未来的某一个不同的日子 卖出该股票。
    设计一个算法来计算你所能获取的最大利润。
    返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润，返回 0 。*/
    public static int check(int[] prices) {
        int n=prices.length;
        int minprices=prices[0];//假定prices[0]为最小值
        int result=0;
        for(int p:prices){
            result=Math.max(result,p-minprices);//更新最大利润
            minprices=Math.min(minprices,p);//更新最小价格
        }
        return result;
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] prices=new int[n];
        for(int i=0;i<n;i++){
            prices[i]=sc.nextInt();
        }
        int benefit=check(prices);
        System.out.println(benefit);
    }
}
